import {defineConfig,loadEnv} from 'vite'


// 引入开发环境和生产环境的vite.config.ts配置文件
import devModeConfig from './vite.dev.config'
import prodModeConfig from './vite.prod.config'

// 不要总是使用if,else条件判断，可以用其他的方式
// 策略模式
const currentEnvMode:any={
    // 生产环境
    build:()=>{
        console.log('当前处于生产环境');
        return Object.assign({},prodModeConfig)
    },
    // 开发环境
    serve:()=>{
        console.log("当前处于开发环境");
        return {...devModeConfig}
    }
}

// defineConfig函数最后会返回一个配置对象
export default defineConfig(({command,mode})=>{
    console.log(mode,'<<<=== mode');
    console.log(command,'<<<=== command');
    // console.log(process.env,'process.env--->当前进程的环境变量');
    const env=loadEnv(mode,process.cwd(),'')//返回一个对象
    // console.log(env,'env==========>>>>>>>通过当前工作文件夹中的mode模式来加载指定的环境变量文件，比如.env.development');
    
    console.log(env.VITE_APP_TITLE,'<<<=== env环境变量文件夹中的变量------>根据你输入命令时判断是开发环境还是生产环境，然后找对应的配置文件');
 
    return currentEnvMode[command]() 
})



